//----------------------------------------------------------------
#ifndef BOID_H
#define BOID_H
//----------------------------------------------------------------
#include <vector>
#include "Engine.h"
#include "SVector2D.h"
#include "utils.h"
//----------------------------------------------------------------
using namespace std;
//----------------------------------------------------------------
class Boid 
{

public:
	SVector2D m_kPos;
	SVector2D m_kVel;
	SVector2D m_kAcc;
	float m_fR;
	float m_fMaxForce;
	float m_fMaxSpeed;

	Box* m_pkGraphic;

public:
	Boid(SVector2D kPos, float fMaxSpeed, float fMaxForce, Scene* pkScene);
	void Run(vector<Boid> kBoids);
	void Flock(vector<Boid> kBoids);
	void Update();
	void Seek(SVector2D kTarget);
	void Arrive(SVector2D kTarget);
	SVector2D Steer(SVector2D kTarget, bool bSlowDown);
	void Borders();
	SVector2D Separate (vector<Boid> kBoids);
	SVector2D Align (vector<Boid> kBoids);
	SVector2D Cohesion (vector<Boid> kBoids);

};
//----------------------------------------------------------------
#endif // BOID_H
//----------------------------------------------------------------
